Web-интерфейс. Сценарий управления устройством

картинка

Управление состоянием интерфейса при переключении SIM-слотов. Логические узлы

show_cover

Обработчик состояния заставки при переключении слотов

Язык Пример кода
JavaScript
function greet(name) {
    console.log("Hello, " + name);
}
Bash
#!/bin/bash
echo "Обновление системы"
sudo apt update && sudo apt upgrade -y
	show_cover = {
	# создаём логический узел "show_cover"
		note = [[ Показываем заставку "Идёт переключение слотов" ]],
		# и добавляем в него операторы узла
		{
			["load-ubus"] = function (nodes)
			# оператор [load-ubus] получает состояние
				return {
				# слотов от Микроконтроллера,
					object = "tsmstm",
					# обратившись к системной шине UBUS
					method = "info",
					params = {},
				}
			end
		},
		{	
			["skip"] = function (nodes)
			# если в данный момент происходит 
				local last_switch_time = nodes.show_cover.last_switch_time
				# переключение слотов, то оператор [skip]
				if ((os.time() - last_switch_time) > 15) then 
				# отменяет обработку следующих за ним операторов
					return true else return false
					# узла, таких как: [ui-update] и [break]
				end
			end
		},
		{
			["ui-update"] = function(nodes)	
			# если же имеет место переключение слотов, то
				return({
				# отправляем в веб-интерфейс switching="true",
					simid = nodes.show_cover.slot,
					# воспользовавшись оператором [ui-update]								
					switching = "true"													
				})
			end
		},
		{
			["break"] = function(nodes)
			# и прерываем дальнейшую обработку данного
				return true
				# правила оператором [break],
			end
			# так как в этом нет необходимости
		},
	},

hide_cover

Обработчик скрытия заставки при завершении переключения слотов

	hide_cover = {																		
	# создаём логический узел "hide_cover"
		note = [[ Скрываем заставку "Идёт переключение слотов" ]],						
		# и добавляем в него операторы узла
		{
			["load-ubus"] = function (nodes)											
			# оператор [load-ubus] получает состояние
				return {																
				# слотов от Микроконтроллера,
					object = "tsmstm",													
					# обратившись к системной шине UBUS
					method = "info",
					params = {},
				}
			end
		},
		{	
			["skip"] = function (nodes)													
			# если переключение слотов окончено, то 
				local last_switch_time = nodes.show_cover.last_switch_time				
				# оператор [skip] возвращает "false":
				if ((os.time() - last_switch_time) < 15) then 							
				# значит следующие за ним операторы
					return true else return false 										
					# не отменяются
				end
			end
		},
		{
			["ui-update"] = function(nodes)												
				return({																
					simid = nodes.show_cover.slot,										
					# оператор [ui-update] посылает в веб-интерфейс
					switching = "false"													
					# значение switching="false"
				})
			end
		},
	},